package src.C_io;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class Demo06 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        /*
        Java中编码的方法
            public byte[] getBytes()                        使用默认方式进行编码
            public byte[] getBytes(String charsetName)      使用指定方式进行编码

        ps：idea默认的是Unicode(utf-8，1个英文1个字节，1个中文3个字节)；
            eclipse默认的是GBK(1个英文1个字节，1个中文2个字节)
            正是因为各字符集字节个数表示的含义不同，所以才会出现乱码的现象

        Java中解码的方法
            String(byte[] bytes)                            使用默认方式进行解码
            String(byte[] bytes, String charsetName)        使用指定方式进行解码
        */

        String str = "ai你哟";
        // 编码
        byte[] bytes1 = str.getBytes(); // 默认idea编码utf-8
        System.out.println(Arrays.toString(bytes1)); // 1+1+3+3=8个字节
        byte[] bytes2 = str.getBytes("GBK"); // 指定GBK编码
        System.out.println(Arrays.toString(bytes2)); // 1+1+2+2=6个字节
        // 解码
        String s1 = new String(bytes1); // utf-8解utf-8
        String s2 = new String(bytes1, "GBK"); // GBK解utf-8，乱码
        String s3 = new String(bytes2); // utf-8解GBK，乱码
        String s4 = new String(bytes2, "GBK"); // GBK解GBK
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);

    }
}
